
package requests

import (
	"github.com/goravel/framework/contracts/http"
	"github.com/goravel/framework/contracts/validation"
)

type SystemNotificationRequest struct {

	Mark string `json:"mark" form:"mark"`

	Name string `json:"name" form:"name"`

	Title string `json:"title" form:"title"`

	IsSystem string `json:"is_system" form:"is_system"`

	SystemTitle string `json:"system_title" form:"system_title"`

	SystemText string `json:"system_text" form:"system_text"`

	IsWechat string `json:"is_wechat" form:"is_wechat"`

	WechatTempkey string `json:"wechat_tempkey" form:"wechat_tempkey"`

	WechatContent string `json:"wechat_content" form:"wechat_content"`

	WechatKid string `json:"wechat_kid" form:"wechat_kid"`

	WechatTempid string `json:"wechat_tempid" form:"wechat_tempid"`

	WechatData string `json:"wechat_data" form:"wechat_data"`

	WechatLink string `json:"wechat_link" form:"wechat_link"`

	WechatToRoutine string `json:"wechat_to_routine" form:"wechat_to_routine"`

	IsRoutine string `json:"is_routine" form:"is_routine"`

	RoutineTempkey string `json:"routine_tempkey" form:"routine_tempkey"`

	RoutineContent string `json:"routine_content" form:"routine_content"`

	RoutineKid string `json:"routine_kid" form:"routine_kid"`

	RoutineTempid string `json:"routine_tempid" form:"routine_tempid"`

	RoutineData string `json:"routine_data" form:"routine_data"`

	RoutineLink string `json:"routine_link" form:"routine_link"`

	IsSms string `json:"is_sms" form:"is_sms"`

	SmsId string `json:"sms_id" form:"sms_id"`

	SmsText string `json:"sms_text" form:"sms_text"`

	IsEntWechat string `json:"is_ent_wechat" form:"is_ent_wechat"`

	EntWechatText string `json:"ent_wechat_text" form:"ent_wechat_text"`

	Url string `json:"url" form:"url"`

	IsApp string `json:"is_app" form:"is_app"`

	AppId string `json:"app_id" form:"app_id"`

	Variable string `json:"variable" form:"variable"`

	Type string `json:"type" form:"type"`

	AddTime string `json:"add_time" form:"add_time"`

	CustomTrigger string `json:"custom_trigger" form:"custom_trigger"`

	CustomVariable string `json:"custom_variable" form:"custom_variable"`

}

func (r *SystemNotificationRequest) Authorize(ctx http.Context) error {
	return nil
}

func (r *SystemNotificationRequest) Rules(ctx http.Context) map[string]string {
	return map[string]string{

		"mark": "required",

		"name": "required",

		"title": "required",

		"is_system": "required",

		"system_title": "required",

		"system_text": "required",

		"is_wechat": "required",

		"wechat_tempkey": "required",

		"wechat_content": "required",

		"wechat_kid": "required",

		"wechat_tempid": "required",

		"wechat_data": "required",

		"wechat_link": "required",

		"wechat_to_routine": "required",

		"is_routine": "required",

		"routine_tempkey": "required",

		"routine_content": "required",

		"routine_kid": "required",

		"routine_tempid": "required",

		"routine_data": "required",

		"routine_link": "required",

		"is_sms": "required",

		"sms_id": "required",

		"sms_text": "required",

		"is_ent_wechat": "required",

		"ent_wechat_text": "required",

		"url": "required",

		"is_app": "required",

		"app_id": "required",

		"variable": "required",

		"type": "required",

		"add_time": "required",

		"custom_trigger": "required",

		"custom_variable": "required",

	}
}

func (r *SystemNotificationRequest) Messages(ctx http.Context) map[string]string {
	return map[string]string{}
}

func (r *SystemNotificationRequest) Attributes(ctx http.Context) map[string]string {
	return map[string]string{}
}

func (r *SystemNotificationRequest) PrepareForValidation(ctx http.Context, data validation.Data) error {
	return nil
}
